1. Field of the Invention
The present invention relates to implementing a cryptography engine. More specifically, the present invention relates to methods and apparatus for processing initialization vectors or initial values.
2. Description of Related Art
Conventional software and hardware designs for implementing various cryptography engines often process initialization vectors inefficiently. Initialization vectors or initial values (IVs) are used in a variety of different cryptographic algorithms and are described in Applied Cryptography, Bruce Schneier, John Wiley & Sons, Inc. (ISBN 0471128457), incorporated by reference in its entirety for all purposes.
In typical implementations, initialization vectors or initial values are used to randomize the encryption of data sequences. In one example, when two data blocks are encrypted using a block cipher, the two encrypted data blocks for a given data block are the same. Having the same encrypted data blocks result from the encryption may provide useful information to an eavesdropper. Initialization vectors make the encrypted data blocks different, even if the two data blocks are the same. In many implementations, the initialization vector is passed with the encrypted data block to allow the retrieval of the original data block after decryption.
However, processing of the initialization vector at the entity encrypting the data and at the entity decrypting the data is inefficient. It is therefore desirable to provide methods and apparatus for improving the handling of initialization vectors.